package br.com.sgpv2.entity.pessoa.documentacao;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import org.hibernate.annotations.Cascade;

@Entity
@Table(name = "doc_documentacao")
@SequenceGenerator(name = "sequenceDocumentacao", sequenceName = "doc_documentacao_doc_id_seq")
public class Documentacao implements Serializable {

	private static final long serialVersionUID = 1L;
	private int id;
	private String cpf;
	private String CTPS;
	private String dataExpedicaoCtps;
	private String PIS;
	private String dataCadastroPis;
	private Identidade identidade;
	private TituloEleitor tituloEleitor;
	private Reservista reservista;
	private Habilitacao habilitacao;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "doc_id", nullable = false)
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	@Column(name = "doc_ctps")
	public String getCTPS() {
		return CTPS;
	}

	public void setCTPS(String ctps) {
		CTPS = ctps;
	}

	@Column(name = "doc_data_expidacao_ctps")
	public String getDataExpedicaoCtps() {
		return dataExpedicaoCtps;
	}

	public void setDataExpedicaoCtps(String dataExpedicaoCtps) {
		this.dataExpedicaoCtps = dataExpedicaoCtps;
	}

	@Column(name = "doc_pis")
	public String getPIS() {
		return PIS;
	}

	public void setPIS(String pis) {
		PIS = pis;
	}

	@Column(name = "doc_data_cadastro_pis")
	public String getDataCadastroPis() {
		return dataCadastroPis;
	}

	public void setDataCadastroPis(String dataCadastroPis) {
		this.dataCadastroPis = dataCadastroPis;
	}

	@OneToOne
	@JoinColumn(name = "idt_id")
	@Cascade(value = { org.hibernate.annotations.CascadeType.ALL })
	public Identidade getIdentidade() {
		return identidade;
	}

	public void setIdentidade(Identidade identidade) {
		this.identidade = identidade;
	}

	@OneToOne
	@JoinColumn(name = "tel_id")
	@Cascade(value = { org.hibernate.annotations.CascadeType.ALL })
	public TituloEleitor getTituloEleitor() {
		return tituloEleitor;
	}

	public void setTituloEleitor(TituloEleitor tituloEleitor) {
		this.tituloEleitor = tituloEleitor;
	}

	@OneToOne
	@JoinColumn(name = "res_id")
	@Cascade(value = { org.hibernate.annotations.CascadeType.ALL })
	public Reservista getReservista() {
		return reservista;
	}

	public void setReservista(Reservista reservista) {
		this.reservista = reservista;
	}

	@OneToOne
	@JoinColumn(name = "hab_id")
	@Cascade(value = { org.hibernate.annotations.CascadeType.ALL })
	public Habilitacao getHabilitacao() {
		return habilitacao;
	}

	public void setHabilitacao(Habilitacao habilitacao) {
		this.habilitacao = habilitacao;
	}

	@Column(name = "doc_cpf")
	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

}
